<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body{
      background-color: yellow;
    }
    #box1{
      background-color: red;
      height: 100px;
      width: 100px;
      position: absolute;
    }
  </style>
</head>
<body style="height: 1000px;width: 2000px;">
  <!-- 这样的话，box在里面就有了滚动条 -->
  <div id="box1"></div>
  <script type="text/javascript">
  window.onload = function () {
    document.onmousemove = function (event) {
      var box1 = document.getElementById('box1')
      // 解决兼容问题
      event = event||window.event
    //获取滚动条滚动的距离
      /*
        * chrome认为浏览器的滚动条是body的，可以通过body.scrollTop来获取
        * 火狐等浏览器认为浏览器的滚动条是html的，
        */
      var scrollTop = document.body.scrollTop || document.documentElement.scrollTop

      var scrollLeft = document.body.scrollLeft|| document.documentElement.scrollLeft

      console.log(scrollTop)
      console.log(scrollLeft)

    //获取到鼠标的坐标
      /*
        * clientX和clientY
        * 	用于获取鼠标在当前的可见窗口的坐标
        * div的偏移量，是相对于整个页面的
        * 
        * pageX和pageY可以获取鼠标相对于当前页面的坐标
        * 	但是这个两个属性在IE8中不支持，所以如果需要兼容IE8，则不要使用
        */
      var left = event.clientX
      var top = event.clientY
      // 一旦有了滚动条，box的偏移量就要发生改变
      // 设置div的偏移量
      box1.style.left = left+scrollLeft+'px'
      box1.style.top = top+scrollTop+'px'
    }
  }
  </script>
  
</body>
</html>